1. Field of the Invention
The invention pertains to integrated memory circuits that are operable either in a first mode in which external pads are connected through buffer circuitry to an array of memory cells such as nonvolatile memory cells (so that data can be written to the cells through an input buffer, or data can be read from the cells through an output buffer), or in a test mode in which the external pads are connected directly to the memory cell array. The integrated circuit of the invention includes circuitry which operates in the test mode to apply desired voltages from an external pad directly to control gates of all or selected ones of the rows of memory cells.
2. Description of Related Art
Throughout the specification, including in the claims, the term "connected" is used (in the context of an electronic component being "connected" to another electronic component) in a broad sense to denote that the components are electrically or electromagnetically coupled with sufficient strength under the circumstances. It is not used in a narrow sense requiring that an electrically conducting element is physically connected between the two components.
Nonvolatile memory chips (integrated circuits) with higher density are being introduced to the market each day. In order to achieve higher density, chip manufacturers must continually decrease the size of elements of the chips (such as the size of each cell of a memory array implemented in each chip). With memory array cells having submicron feature sizes, the slightest change in processing of one memory cell relative to another during manufacture results in a big difference in the behavior of the cells with respect to each other.
Many conventional memory chips operate in either a test mode in which input/output ("I/O") pads are connected directly to an array of memory cells, or in a "normal" (or "active") mode in which the I/O pads are connected through buffer circuitry to the array of memory cells. In the latter mode (the "normal" mode) the chip can perform read/write operations in which data is written to selected ones of the cells through an input buffer (or data is read from selected ones of the cells through an output buffer).
FIG. 1 is a simplified block diagram of a conventional memory chip of this type. Memory chip 3 of FIG. 1 includes at least one I/O pad 30 (for asserting output data to an external device or receiving input data from an external device), input/output buffer circuit 10 for I/O pad 30, test mode switch Ml, address buffers AO through Ap for receiving memory address bits from an external device, row decoder circuit (X address decoder) 12, column multiplexer circuit (Y multiplexer) 14, memory array 16 (comprising columns of nonvolatile memory cells, such as column 16A), pad 90, switch 121 connected between pad 90 and other components of chip 3, and control unit 29. Each of address buffers AO through Ap includes an address bit pad for receiving (from an external device) a different one of address bit signals Xo through Xn and Y0 through Ym.
I/O buffer circuit 10 includes a "write" branch and a "read" branch." The write branch comprises input buffer 18. The read branch comprises sense amplifier 19 and output buffer 20.
In the normal operating mode of chip 3 of FIG. 1, control unit 29 can cause chip 3 to execute a write operation in which it receives data (to be written to memory array 16) from an external device at I/O pad 30, buffers the data in the write branch, and then writes the data to the appropriate memory cell. Also in this normal operating mode, control unit 29 can cause chip 3 to execute a read operation in which it amplifies and buffers data (that has been read from array 16) in the read branch, and then asserts this data to I/O pad 30.
Although only one I/O pad (pad 30) is shown in FIG. 1, typical implementations of the FIG. 1 circuit include a plurality of I/O pads, and each I/O pad is buffered by an I/O buffer circuit similar or identical to circuit 10. For example, one implementation of the FIG. 1 circuit includes eight I/O pads, eight buffer circuits identical to circuit 10, one line connected between the output of the output buffer 20 of each buffer circuit and one of the I/O pads (so that eight data bits can be read in parallel from buffers 20 to the pads), and one line connected between the input of the input buffer 18 of each buffer circuit and one of the I/O pads (so that eight data bits can be written in parallel from the pads to buffers 18). Each I/O pad (including I/O pad 30) typically has high impedance when the output buffer is not enabled.
Each of the cells (storage locations) of memory array circuit 16 is indexed by a row index (an "X" index determined by decoder circuit 12) and a column index (a "Y" index output determined by circuit 14). FIG. 2 is a simplified schematic diagram of two columns of cells of memory array 16 (with one column, e.g., the column on the right, corresponding to column 16A of FIG. 1). The column on the left side of FIG. 2 comprises "n" memory cells, each cell implemented by one of floating-gate N-channel transistors N1, N3, . . . , Nn. The drain of each of transistors N1-Nn is connected to bitline 13, and the gate of each is connected to a different wordline (a different one of wordline 0 through wordline n). The column on the right side of FIG. 2 also comprises "n" memory cells, each cell implemented by one of floating-gate N-channel transistors N2, N4, . . . , Nm. The drain of each of transistors N2-Nm is connected to bitline 15, and the gate of each is connected to a different wordline (a different one of wordline 0 through wordline n). The source of each of transistors N1, N3, . . . , Nn, and N2, N4, . . . , Nm is held at a source potential (which is usually ground potential for the chip during a read or programming operation).
Each memory cell is a nonvolatile memory cell since each of transistors N1, N3, . . . , Nn, and N2, N4, . . . , Nm has a floating gate capable of semipermanent charge storage. The current drawn by each cell (i.e., by each of transistors N1, N3, Nn, and N2, N4, . . . , Nm) depends on the amount of charge stored on the cell's floating gate. Thus, the charge stored on each floating gate determines a data value that is stored "semipermanently" in the corresponding cell. In cases in which each of transistors N1, N3, . . . , Nn, N2, N4, . . . , and Nm is a flash memory device (as indicated in FIG. 2 by the symbol employed to denote each of transistors N1, N3, . . . Nn, N2, N4, . . . , and Nm), the charge stored on the floating gate of each is erasable (and thus the data value stored by each cell is erasable) by appropriately changing the voltage applied to the gate and source (in a well known manner).
In response to address bits Y0-Ym, circuit 14 (of FIG. 1) determines a column address which selects one of the columns of memory cells of array 16 (connecting the bitline of the selected column to Node 1 of FIG. 1), and in response to address bits X0-Xn, decoder circuit 12 (of FIG. 1) determines a row address which selects one cell in the selected column. Consider an example in which the column address selects the column on the right side of FIG. 2 (the column including bitline 15) and the row address selects the cell connected along wordline 0 (the cell comprising transistor N2). To read the data value stored in the selected cell, a signal (a current signal) indicative of such value is provided from the cell's drain (the drain of transistor N2, in the example), through bitline 15 and circuit 14, to node 1 of FIG. 1. To write a data value to the selected cell, a signal indicative of such value is provided to the cell's gate and drain (the gate and drain of transistor N2, in the example).
With reference again to FIG. 1, the function of switch M1 is to switch the FIG. 1 chip between its test mode and its normal operating mode. Conventionally, switch Ml is an NMOS transistor whose gate receives a control signal ("Test Mode Enable") from internal control logic within control unit 29. The source and drain of M1 are connected in series with I/O pad 30 and circuit 14. Switch M1 operates as follows in response to the control signal:
M1 is "on" when Test Mode Enable is high (when the value of Test Mode Enable triggers the "test" mode of FIG. 1), and thus M1 functions as a pass transistor which passes a signal (a "test" signal) indicative of test data to be written to or read from a selected cell of array 16 (e.g., a current signal indicative of test data read from the selected cell) between its source and drain (and thus between I/O pad 30 and the selected cell of array 16). If buffers 18 and 20 of circuit 10 are disabled when M1 is on, the test signals pass through M1 but not through circuit 10; and
M1 is "off" when Test Mode Enable is low (when the value of Test Mode Enable triggers the "normal" operating mode of FIG. 1), so that signals (indicative of data to be written to memory array 16) provided from an external device to I/O pad 30 are buffered in input buffer 18 and then asserted to memory array 16, or signals (indicative of data read from memory array 16) are asserted from memory array 16 to sense amplifier 19, amplified in amplifier circuit 19, and then buffered in output buffer 20 and asserted to I/O pad 30. Typically, the "low" value of Test Mode Enable is ground potential.
In the normal operating mode of FIG. 1 (with M1 "off"), the FIG. 1 circuit executes a write operation as follows. Each of address buffers A0 through An asserts one of bits X0-Xn to decoder circuit 12, and each of address buffers An+1 through Ap asserts one of bits Y0-Ym to circuit 14. In response to these address bits, circuit 14 determines a column address (which selects one of the columns of memory cells of array 16, such as column 16A), and circuit 12 determines a row address (which selects one cell in the selected column). In response to a write command supplied from control unit 29, a signal (indicative of data) present at the output of input buffer 18 (which has been enabled by the appropriate level of the control signal "DATA DRIVER ON") is asserted through circuit 14 to the cell of array 16 determined by the row and column address (e.g., to the drain of such cell). During such write operation, output buffer 20 is disabled (in response to an appropriate level of control signal OUTPUT ENABLE).
A data latch (not shown) is typically provided between input buffer 18 and I/O pad 30 for storing data (to be written to a memory cell) received from I/O pad 30. When the latched data is sent to input buffer 18, input buffer 18 produces a voltage at Node 1 which is applied to the selected memory cell. Input buffer 18 is typically implemented as a tri-statable driver having an output which can be placed in a high impedance mode (and thus disabled) during a read operation. Input buffer 18 is disabled by asserting (to input buffer 18) an appropriate level of the control signal DATA DRIVER ON. In some implementations, the functions of the latch and input buffer 18 are combined into a single device.
In the normal operating mode (with M1 "off"), the FIG. 1 circuit executes a read operation as follows. Each of address buffers A0 through An asserts one of bits X0-Xn to address decoder circuit 12, and each of address buffers An+1 through Ap asserts one of bits Y0-Ym to circuit 14. In response to these address bits, circuit 14 asserts a column address to memory array 16 (which selects one of the columns of memory cells, such as column 16A), and circuit 12 asserts a row address to memory array 16 (which selects one cell in the selected column). In response to a read command supplied from control unit 29, a current signal indicative of a data value stored in the cell of array 16 (a "data signal") determined by the row and column address is supplied from the drain of the selected cell through the bitline of the selected cell and then through circuit 14 to sense amplifier 19. This data signal is amplified in amplifier 19, buffered in output buffer 20 (which is enabled by an appropriate level of control signal "OUTPUT ENABLE"), and finally asserted at I/O pad 30. During such read operation, input buffer 18 is disabled (in response to an appropriate level of control signal DATA DRIVER ON).
Chip 3 of FIG. 1 also includes a pad 90 which receives a high voltage V.sub.pp from an external device, and a switch 121 connected to pad 90. During some steps of a typical erase or program sequence (in which the cells of array 16 are erased or programmed), control unit 29 sends a control signal to switch 121 to cause switch 121 to close and thereby assert the high voltage V.sub.pp to various components of the chip including X decoder 12. Voltage V.sub.pp is higher (typically V.sub.pp =12 volts) than the normal operating mode supply voltage (typically V.sub.cc 5 volts or V.sub.cc =5.5 volts) for the MOS transistors of chip 3.
When reading a selected cell of array 16, if the cell is in an erased state, the cell will conduct a first current which is converted to a first voltage in sense amplifier 19. If the cell is in a programmed state, it will conduct a second current which is converted to a second voltage in sense amplifier 19. Sense amplifier 19 determines the state of the cell (i.e., whether it is programmed or erased corresponding to a binary value of 0 or 1, respectively) by comparing the voltage indicative of the cell state to a reference voltage. The outcome of this comparison is an output which is either high or low (corresponding to a digital value of one or zero) which sense amplifier 19 sends to output buffer 20, which in turn asserts a corresponding data signal to I/O pad 30 (from which it can be accessed by an external device).
During the test mode, input buffer 18, sense amplifier 19, and output buffer 20 are all disabled (in response to appropriate levels of their respective control signals DATA DRIVER ON, SENSE AMPLIFIER ENABLE, and OUTPUT ENABLE, which are generated by control unit 29).
During a write operation in the normal operating mode, control signal SENSE AMPLIFIER ENABLE disables sense amplifier 19. During a read operation in the normal operating mode, circuit 14 is employed to access the desired cell in array 16 and control signal SENSE AMPLIFIER ENABLE enables sense amplifier 19 so that sense amplifier 19 can determine the state of the selected cell as described.
It is important during a write operation (in the normal operating mode) to provide the wordline of the selected cell with the proper voltage and the drain of the selected cell with the appropriate voltage level (the voltage determined by the output of input buffer 18), in order to successfully write data to the cell without damaging the cell.
FIG. 3 is a block diagram of a conventional flash memory chip 103 which is a variation on memory chip 3 of FIG. 1 and which performs essentially all the same functions as does chip 3. The components of flash memory system 103 which correspond to components of memory chip 3 of FIG. 1 are identified by the same reference numerals as in FIG. 1. Memory array 16 of system 103 consists of flash memory cells arranged in rows and columns with there being a total of 256K of eight bit words in the array. The individual cells (not depicted) are addressed by eighteen address bits (A0-A17), with nine bits being used by X decoder circuit 12 to select the row of array 16 in which the target cell is located and the remaining nine bits being used by Y decoder circuit 14A (of Y-multiplexer 14) to select the appropriate column of array 16.
Internal state machine 120 of control unit 29 of memory chip 103 controls detailed operations of chip 103 such as the various individual steps necessary for carrying out programming, reading and erasing operations. State machine 120 thus functions to reduce the overhead required of the processor (not depicted) typically used in association with chip 103.
If memory array 16 is to be erased (typically, all or large blocks of cells are erased at the same time), the processor must cause the Output Enable OE pin to be inactive (high), and the Chip Enable CE and Write Enable WE pins to be active (low). The processor can then issue an 8 bit command 20H (0010 0000) on data I/O pins DQ0-DQ7, typically called an Erase Setup command (one of I/O pins DQ0-DQ7 corresponds to I/O pad 30 of FIG. 1). This is followed by issuance of a second eight bit command D0H (1101 0000), typically called an Erase Confirm command. Two separate commands are used so as to minimize the possibility of an inadvertent erase operation.
The commands are transferred to data input buffer 122 (input buffer 18 of FIG. 1 corresponds to a component of buffer 122 which receives one bit of each command) and the commands are then transferred to command execution logic unit 124 of control unit 29. Logic unit 124 then instructs state machine 120 to perform all of the numerous and well known steps for erasing array 16.
During some steps of a typical erase sequence, state machine 120 sends a control signal to switch 121, to cause switch 121 to close and thereby assert a high voltage V.sub.pp to various components of chip 103, including X decoder 12 and Y multiplexer 14. As in chip 3 of FIG. 1, voltage V.sub.pp is typically received by chip 103 from an external device at a power supply pad of chip 103 connected to switch 121 (e.g., pad 90 shown in FIG. 1). Voltage V.sub.pp is higher (typically V.sub.pp =12 volts, than the normal operating mode supply voltage (typically V.sub.cc =5 volts or V.sub.cc =5.5 volts) for the MOS transistors of chip 103.
Once the erase sequence is completed, state machine 120 updates an 8 bit status register 126, the contents of which are transferred to data output buffer 128 which is connected to data I/O pins DQ0-DQ7 of the memory system (output buffer 18 of FIG. 1 corresponds to a component of buffer 128 which receives one bit from register 126). The processor will periodically poll the data I/O pins to read the contents of status register 126 in order to determine whether the erase sequence has been completed and whether it has been completed successfully.
Chip 103 of FIG. 3 (and chip 3 of FIG. 1) typically implements a complicated sequence of steps to erase all or selected ones of the cells of array 16 (so that they store data indicative of a logical "1") or to program all or selected ones of such cells (so that they store data indicative of a logical "0"). These steps typically include verification steps for verifying the status of all or selected ones of the cells at various stages of an erase (or programming) operation.
During a typical erase operation, it is desired to erase all the cells of array 16 so that the threshold voltages are all within a specified voltage range. That range is typically a small positive voltage range such as from +1.5 to +3.0 volts. If the erased cells fall within this range, the cell to be read (the "selected" or "target") cell will produce a cell current in a read operation. The presence of cell current flow indicates that the cell is in an erased state (logic "1") rather than a programmed state (logic "0"). Cell current is produced in a selected erased cell if the voltage applied to the control gate of the cell, by way of the wordline connected to X decoder 12, exceeds the threshold voltage of the erased cell. In addition, cells which are not being read ("deselected" cells) are prevented from producing a cell current even if such cells have been erased to a low threshold voltage state. By way of example, for cells located in the same row as the selected cell, by definition, share the same wordline as the selected cell. However, the drains of the deselected cells will be floating thereby preventing a cell current from being generated. Deselected cells in the same column will not conduct cell current because the wordlines of such deselected cells are typically grounded. Thus, the gate-source voltage of these cells will be insufficient to turn on these deselected cells even if they are in an erased state.
After an erase operation, the vast majority of cells will have a proper erased threshold voltage. However, it is possible that a few (or even one) of the cells may have responded differently to the erase sequence and such cell(s) have become overerased. If a cell is overerased, the net charge on its floating gate will be positive. The result will be that the threshold voltage will be negative to some extent. Thus, when such overerased cell is deselected (the wordline connected to the overerased deselected cell is grounded), the deselected cell will nevertheless conduct current. This current will interfere with the reading of the selected cell thereby preventing proper memory operation.
It is necessary to perform a complicated sequence of steps to erase or program the cells of a conventional nonvolatile memory chip because the individual cells of each array of such a chip typically behave differently, and thus the chip's state machine needs to ensure that all cells have at least a minimum margin at the end of each erase (or program) operation. This, however, does not mean that all the cells will be left with the same threshold voltage (V.sub.th) at the end of an erase or program operation. For example, if during programming of all cells of an array, the state machine sets the minimum V.sub.th of all programmed cells to 5.5 volts, there may be many cells that have been programmed to a V.sub.th in the range from 7 to 7.5 volts at the end of the programming operation. So, there is a range of V.sub.th S for the programmed cells. The same is true for an erase operation, and thus there is typically a range of V.sub.th S for the erased cells. The V.sub.th range for erased cells may typically be from 1 volt to 3 volts after an erase operation, if the maximum V.sub.th of an erased bit is set to 3 volts by the state machine.
Measuring the V.sub.th distribution of the cells of an array (after erase and program operations) is of great importance to memory manufacturers and designers. The degree of tightness of such distribution is a good indicator of how well the memory elements have been processed (e.g., during manufacture of the chip) and how well the state machine is functioning.
The threshold voltages ("V.sub.th S") of nonvolatile cells of a memory array have conventionally been measured indirectly (during a test mode) by measuring current/voltage ("I/V") characteristics of the cells for a sequence of different voltages between the source and drain of each cell and then deriving the V.sub.th values from the measured I/V characteristics. For example, in a conventional test mode implemented by the FIG. 1 chip, a selected cell of array 16 is connected directly to I/O pad 30 (or to several I/O pads including pad 30 and other I/O pads), and a current/voltage characterization is performed on the selected cell as follows. The voltage at the cell's drain (the potential at which bitline 15 of FIG. 2 is held, for example) is controllable since the selected bitline is directly connected to an external device through I/O pad 30, and the external device varies the voltage at which the bitline (bitline 15, in the example) is held. By sweeping the voltage on I/O pad 30 during the test mode and monitoring the resulting cell current (the current flowing from the selected cell's drain through bitline 15, circuit 14, Node 1, and switch M1 to I/O pad 30, in the example), an I/V curve for the cell is obtained. This process is repeated for each of a sequence of gate voltages to obtain a family of I/V curves for the cell, and the family of I/V curves is analyzed to determine the cell's threshold voltage.
However, there are several serious problems with (and limitations of) conventional methods (such as the method described in the previous paragraph) and conventional apparatus for test mode measurement of I/V curves for selected cells. One such problem is that the tester must arbitrarily assign a current value which characterizes a cell as an "erased" or "programmed" cell when analyzing the measured I/V curves. However, this arbitrarily assigned value is not necessarily the reference current value employed in the sense amplifier to determine the state of each cell during normal (non-test mode) chip operation. Thus, even though a cell is arbitrarily identified by the tester as a "programmed" cell (as a result of test mode operation of the chip), the sense amplifier may be able to read the cell as an erased cell (during normal operation of the chip).
Another of such problems is that measurement of cell current (in a conventional test mode) must be done through the measurement unit of the tester. Thus, the operations of switching from cell address to cell address and making the measurement for each cell consumes a very long time per byte. For a four megabyte or larger cell array, the amount of time required for measuring all the cells is very long, and the tester does not usually have the capability to make decisions regarding passage or failure of bits based on continuous I/V measurement.
To overcome these (and other) problems with conventional measurement of the threshold voltage (V.sub.th) of cells of a memory chip, it would be desirable to make such V.sub.th measurements in a more direct manner, such as by: applying a sequence of selected voltages directly to all or selected ones of the wordlines of the cell array (and thus to the gates of all or selected ones of the rows of the cells); in response to application of each selected voltage, employing the chip's read circuitry (including the sense amplifier and other circuitry employed to execute a read operation in the chip's normal operating mode) to read the cells connected along each wordline; and identifying which of the cells are read by the read circuitry as being in their intended (erased or programmed) state and which of them are not read as being in their intended state. By implementing such direct (or "true") V.sub.th measurements, the threshold voltage of each cell could be rapidly and directly measured. However, until the present invention, no memory chip had been designed to be capable of operating in a test mode (a "true V.sub.th measurement test mode") for implementing such true V.sub.th measurements. Conventional test mode circuitry could not implement a true V.sub.th measurement test mode, since such conventional circuitry could not apply the full range of voltages to the wordlines that is needed to measure the full range of typical V.sub.th values for erased and programmed cells.
One reason why a memory chip including conventional test mode circuitry lacks the latter capability is apparent from the following explanation. In such a conventional chip, wordlines are accessed through PMOS transistors formed in a well in a row address decoder circuit (e.g., X decoder 12 of FIG. 1). The supply voltage for such PMOS transistors (denoted as V.sub.cc in FIG. 1) is typically equal to 5 volts or 5.5 volts. If an attempt were made to decrease a "wordline voltage" (a voltage to be applied to a wordline through the decoder) from V.sub.cc to a selected value less than (V.sub.cc -V.sub.t), where V.sub.t is the threshold voltage (typically less than 1 volt) of the decoder's PMOS devices, the well would turn on and clamp the wordline voltage (thus preventing the wordline voltage from being further decreased to the selected value). This would prevent the wordline voltage from being decreased to values that are sufficiently low (e.g., values in the range from 1 volt to 3.5 volts) to measure the V.sub.th S of typical erased cells.
The present invention provides a means for implementing a true V.sub.th measurement test mode in which a sequence of selected voltages is applied directly to all or selected ones of the wordlines of a memory cell array, which is not subject to the problems and limitations described in the four previous paragraphs.